<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Ajax demo CORS 跨域资源共享 XDR</title>
</head>

<body>

    <script>
        //IE 中引入了XDR类型 这个对象与XHR类似，但能实现安全可靠的跨域通信
        //特性：
        //cookie不会随请求发送，也不会随响应返回
        //只能设置请求头部信息中的Content-Type字段
        //不能访问响应头部的信息（不能使用getResponseHeader() 、getAllResponseHeaders()方法）
        //只支持GET和POST请求

        (function () {
            var xdr = new XDomainRequest();
            // 加载成功后调用onload方法，响应数据保存在responseText属性中
            xdr.onload = function () {
                // 接受到响应后，只能访问原始的文本，没有办法确定响应的状态代码，
                // 而且只要响应有效就会触发load事件，如果失败就会触发error事件，
                // 遗憾的是除了错误本身以外，没有其他信息可用。
                // 因此唯一能够确定的就只有请求成功了要检测错误就要指定onerror事件处理程序
                console.log(xdr.resposeText);
            }
            //onerror 来检测错误
            xdr.onerror = function () {
                console.log("error");
            }
            // 超时设置
            xdr.timeout = 1000;
            xdr.ontimeout = function () {
                console.log("timeout");
            }
            // 接受两个参数 请求类型，url，只能异步执行，不能来创建同步请求
            xdr.open("get/post", url)
            // contentType 是通过XDR对象影响头部的唯一方式
            //xdr.contentType="application/x-www-form-urlencoded";
            xdr.send(null);
            // xhr.abort() 在请求返回之前调用abort()方法可以终止请求
        })();
    </script>
</body>

</html>